With the ever-increasing popularity of the Internet, particularly the World Wide Web (“Web”) portion of the Internet, more and more computers across the globe are connected to networks, including Local Area Networks (LANs) and Wide Area Networks (WANs). Providing access to vast amounts of data, the Internet is typically accessed by users through Web “browsers” (e.g., Microsoft Internet Explorer® or Netscape Navigator@) or other “Internet applications” (e.g., iTunes from Apple Computer). Browsers and other Internet applications provide functionality to enable computers (often referred to as “clients”) to communicate with applications such as web “servers” (e.g., Apache or Websphere) running on remote computers. In a typical client-server session, a browser provides a user located at a client with functionality to access a URL (Universal Resource Locator) or “Web” site stored on a server.
Communication over the Internet is conducted using certain protocols. These protocols allow users with different computers and different operating systems to communicate with each other over the Internet. Typically Internet protocols include the Transmission Control Protocol (TCP) and the Internet Protocol (IP).
The explosive growth of the Internet has had a dramatic effect on how people communicate and engage in many business opportunities. More and more, people require access to the Internet to facilitate research, competitive analysis, communication between branch offices, and send e-mail, to name just a few. Typically, a gateway mediates data between different computers connected to a network.
Due to the global reach of the Internet, a client logging onto a gateway may in fact be located in a different region of the world or a different country than the server the client is requesting to access. Consequentially, the user may transmit data to a gateway that is written in a character set that may be different from the character set recognized by the firewall. To handle such a situation, gateways have restricted the functionality that is made available to a user. For example, certain commands may not be available to users in certain locations or a user may be required to transmit data that is formatted in a specified language.
However, more complicated scenarios may arise. For example, if an e-mail address is encountered by a gateway, the sender of the e-mail address can be determined by looking for the “@” symbol used to separate a username from a host name, such as an e-mail address in the format of username@host.com. Part of the e-mail address, such as the host name, may be written in English, but the username may not be written in English. Further, protocol commands such as “getfile” are passed to a gateway in English, but the file name may be in a different language. To understand data that is transmitted in a different language from that used by a gateway or a client, there is a need to enhance functionality of the gateway with the capability to decipher data that is passed to it in any character set.